原帖 | Jack | 2026-05-21 01:16 | 👍1 | 阅读约1
我看了咱发的低功耗相关的内容,关于手表低功耗关闭 cpu 这块,我有两个问题想问下
第一个是那个 gpio 漏电的情况是怎么 debug 出来的?如果没有芯片内部没有上下拉,关机后 gpio 会有电流倒灌情况的芯片会有这个问题吗?
第二个是关闭 cpu,再打开,不会有外围电路需要充放电的需求么,几百毫秒的深度休眠唤醒电容充放电 inrush 电流之类不一定就比直接等待下个任务来就执行更好吧?这个实际应用会有衡量么,比如多久之内的任务就等着,多久之后的需要休眠再起来?就是说开机启动射频工作后再关闭,开机启动射频瞬间的inrush 电流是正常的,如何省电是去测试模块实际情况衡量是么?
硬件上有什么方案可以配合么,因为这里涉及两个问题,整块板子掉电需要板上的电释放到一定程度才能保证下次上电是稳定可以开机的,如果放电太快,那会导致开机休眠开机会消耗更多电,但是如果放电慢,会导致人工断电上电经常出现板子没法启动。
不知道这种情况应该从什么角度去考虑设计?
答:
第一个问题:
GPIO 倒灌,本质上是:
MCU 或芯片某个电源域已经掉电,但外部信号仍然给 GPIO 一个高电平,电流通过 GPIO 内部保护结构、ESD 二极管、钳位电路或输入缓冲路径,反向灌入芯片电源域。
典型现象是:
产品进入低功耗后,整机电流异常偏大;
MCU 明明已经关断某个电源域,但 VDD/VBAT/IOVDD 上仍然有一个“虚电压”;
断开某根外设线后,低功耗电流立刻恢复正常;
某个外设断电后,它的通信线仍然被另一个模块拉高;
关机后 MCU 某些 GPIO 还有电平,甚至芯片处于半上电状态。
第二个问题:
inrush电流本身是电容性负载重新上电时必然存在的现象,比如 RF 模块、屏幕、电源轨后面的去耦电容、LDO 输出电容、sensor 电源域,只要从 0V 重新拉到 1.8V / 3.3V,都会有充电电流。
但是我们一般做低功耗不是只看瞬间电流峰值,要看一次关断是否真的小于一直等待的能量。这个是真的要测的。然后你可以界定出你这个板子一个策略,比如
几十毫秒以内:通常不进深睡,最多 WFI / Sleep
几百毫秒级:看芯片唤醒时间和业务实时性,可能进 Stop / light sleep
秒级以上:可以考虑 deep sleep,部分外设断电
分钟级以上:可以考虑 RF、屏幕、传感器等高功耗域彻底断电
相关笔记